package edu.chl.grupp11.aegas.controller;

import java.io.File;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;

import org.apache.sanselan.ImageReadException;
import org.farng.mp3.TagException;

import edu.chl.grupp11.aegas.model.AbstractMetaTag;
import edu.chl.grupp11.aegas.view.TagView;

public abstract interface AbstractTagHandler extends Serializable {
	public boolean accepts(File f);

	public void editTag(File file, AbstractMetaTag tag, String newValue);

	public ArrayList<AbstractMetaTag> extractTags(File file)
			throws IOException, TagException, ImageReadException,
			UnsupportedOperationException;

	public ArrayList<TagView> getTagViews(File file);
}
